﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SIGERP_Entidades;
using SIGERP_Negocio;

namespace SIGERP_Presentacion
{
    public partial class frmDerivar : Form
    {
        private Reclamo r;
        private ErrorProvider ep = new ErrorProvider();
        public bool derivo = false;

        public frmDerivar(Reclamo reclamo)
        {
            r = reclamo;
            InitializeComponent();
            llenarCmbs();
        }

        private void llenarCmbs()
        {
            List<TipoDerivacion> tds = TiposDerivaciones.buscarTiposDerivacionHabilitadas(false);
            foreach (TipoDerivacion td in tds) 
            {
                if(td.id!=0)
                cmbMotivo.Items.Add(td);
            }
            cmbMotivo.Width = Utilities.adjustWidth(cmbMotivo);

            List<Area> areas = Areas.buscarAreasHabilitadas();
            foreach(Area a in areas)
            {
                cmbArea.Items.Add(a);
            }
            cmbArea.Width = Utilities.adjustWidth(cmbArea);
        }

        private void cancelar(object sender, EventArgs e)
        {
            Close();
        }

        private void llenarCmbDepto(object sender, EventArgs e)
        {
            List<Departamento> departamentos = Departamentos.buscarDepartamentosArea((Area)cmbArea.SelectedItem);
            cmbDepartamento.Items.Clear();
            if (((Area)cmbArea.SelectedItem).id != 0)
            {
                foreach (Departamento d in departamentos)
                {
                    if(r.departamento_actual.id!=d.id)
                    cmbDepartamento.Items.Add(d);
                }
                if (cmbDepartamento.Items.Count > 0)
                    cmbDepartamento.SelectedIndex = 0;
                cmbDepartamento.Width = Utilities.adjustWidth(cmbDepartamento);
            }
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            ep.Clear();

            if (cmbMotivo.SelectedIndex < 0) 
            { 
                ep.SetError(cmbMotivo,"Debe seleccionar un motivo");
                cmbMotivo.Focus();
                return;
            }

            if (cmbArea.SelectedIndex < 0)
            {
                ep.SetError(cmbArea, "Debe seleccionar un área");
                cmbArea.Focus();
                return;
            }

            if (cmbDepartamento.SelectedIndex < 0)
            {
                ep.SetError(cmbDepartamento, "Debe seleccionar un departamento");
                cmbDepartamento.Focus();
                return;
            }

            Derivacion d = new Derivacion();
            d.departamento = (Departamento)cmbDepartamento.SelectedItem;
            d.descripcion = txtObservaciones.Text;
            d.tipo = (TipoDerivacion) cmbMotivo.SelectedItem;
            d.usuario_deriva = Config.usuario;
            d.reclamo = r;

            Reclamos.DerivarReclamo(d);
            derivo = true;
            Close();
        }

        private void toolStripAyuda_Click_1(object sender, EventArgs e)
        {
            Utilities.mostrarAyuda(this, (this.GetType().ToString() + ".htm").Replace("SIGERP_Presentacion.", ""));
        }
    }
}
